FrameLib  2.0
DSP processing with frames of arbitrary timing and length
FrameLib_Object< T > Class Template Referenceabstract

an abstract template class providing an interface for FrameLib objects and implementing connectivity More...

#include <FrameLib_Object.h>

Inheritance diagram for FrameLib_Object< T >:
FrameLib_Queueable< T >

Classes

class  Connection
 holds the connected object and IO indices for a connection to an object More...
 

Public Types

using Queue = typename FrameLib_Queueable< T >::Queue
 

Public Member Functions

 FrameLib_Object (ObjectType type, FrameLib_Context context, FrameLib_Proxy *proxy)
 
virtual ~FrameLib_Object ()
 
ObjectType getType () const
 
FrameLib_Context getContext () const
 
FrameLib_ProxygetProxy () const
 
unsigned long getNumIns () const
 
unsigned long getNumOuts () const
 
unsigned long getNumAudioIns () const
 
unsigned long getNumAudioOuts () const
 
unsigned long getNumAudioChans () const
 
virtual void setFixedInput (unsigned long idx, double *input, unsigned long size)=0
 
virtual const double * getFixedInput (unsigned long idx, unsigned long *size)=0
 
virtual void blockUpdate (const double *const *ins, double **outs, unsigned long blockSize)=0
 
virtual void reset (double samplingRate, unsigned long maxBlockSize)=0
 
virtual std::string objectInfo (bool verbose=false)
 
virtual std::string inputInfo (unsigned long idx, bool verbose=false)
 
virtual std::string outputInfo (unsigned long idx, bool verbose=false)
 
virtual std::string audioInfo (unsigned long idx, bool verbose=false)
 
virtual FrameType inputType (unsigned long idx) const =0
 
virtual FrameType outputType (unsigned long idx) const =0
 
virtual const FrameLib_ParametersgetParameters () const
 
ConnectionResult addConnection (Connection connection, unsigned long inIdx)
 
void deleteConnection (unsigned long inIdx)
 
ConnectionResult addOrderingConnection (Connection connection)
 
void deleteOrderingConnection (Connection connection)
 
void clearOrderingConnections ()
 
void clearConnections ()
 
ConnectionResult setInputAlias (Connection alias, unsigned long inIdx)
 
ConnectionResult setOrderingAlias (T *alias)
 
ConnectionResult setOutputAlias (Connection alias, unsigned long outIdx)
 
bool isConnected (unsigned long inIdx) const
 
Connection getConnection (unsigned long inIdx) const
 
bool supportsOrderingConnections () const
 
unsigned long getNumOrderingConnections () const
 
Connection getOrderingConnection (unsigned long idx) const
 
virtual void autoOrderingConnections ()=0
 
virtual void clearAutoOrderingConnections ()=0
 
void callConnectionUpdate ()
 
template<class U >
void addOutputDependencies (std::vector< U *> &dependencies)
 
template<class U >
void addOutputDependencies (std::vector< U *> &dependencies, unsigned long outIdx)
 
- Public Member Functions inherited from FrameLib_Queueable< T >
 FrameLib_Queueable ()
 

Static Public Member Functions

static bool handlesAudio ()
 

Protected Member Functions

Connection getConnectionInternal (unsigned long inIdx) const
 
Connection getOrderingConnectionInternal (unsigned long idx) const
 
void addOutputDependencies (Queue *queue)
 
void addOutputDependencies (Queue *queue, unsigned long outIdx)
 
void setIO (unsigned long nIns, unsigned long nOuts, unsigned long nAudioChans=0)
 
void enableOrderingConnections ()
 
template<class U >
U * alloc (unsigned long N)
 
template<class U >
void dealloc (U *&ptr)
 
void clearAllocator ()
 
FrameLib_LocalAllocator::StorageregisterStorage (const char *name)
 
void releaseStorage (FrameLib_LocalAllocator::Storage *&storage)
 
const double * getEmptyFixedInput (unsigned long idx, unsigned long *size)
 

Static Protected Member Functions

static const char * formatInfo (const char *verboseStr, const char *briefStr, bool verbose)
 
static std::string formatInfo (const char *str, unsigned long idx)
 
static std::string formatInfo (const char *verboseStr, const char *briefStr, unsigned long idx, bool verbose)
 
static std::string formatInfo (const char *str, const char *replaceStr)
 
static std::string formatInfo (const char *verboseStr, const char *briefStr, const char *replaceStr, bool verbose)
 
static std::string parameterInputInfo (bool verbose)
 
static std::string numberedString (const char *str, unsigned long idx)
 
template<class U >
static bool addUniqueItem (std::vector< U > &list, U item)
 
template<class U >
static bool deleteUniqueItem (std::vector< U > &list, U item)
 

Detailed Description

template<class T>
class FrameLib_Object< T >

an abstract template class providing an interface for FrameLib objects and implementing connectivity

See also
FrameLib_Block, FrameLib_DSP FrameLib_Multistream

Member Typedef Documentation

◆ Queue

template<class T>
using FrameLib_Object< T >::Queue = typename FrameLib_Queueable<T>::Queue

Constructor & Destructor Documentation

◆ FrameLib_Object()

template<class T>
FrameLib_Object< T >::FrameLib_Object ( ObjectType  type,
FrameLib_Context  context,
FrameLib_Proxy proxy 
)
inline

◆ ~FrameLib_Object()

template<class T>
virtual FrameLib_Object< T >::~FrameLib_Object ( )
inlinevirtual

Member Function Documentation

◆ addConnection()

template<class T>
ConnectionResult FrameLib_Object< T >::addConnection ( Connection  connection,
unsigned long  inIdx 
)
inline

◆ addOrderingConnection()

template<class T>
ConnectionResult FrameLib_Object< T >::addOrderingConnection ( Connection  connection)
inline

◆ addOutputDependencies() [1/4]

template<class T>
template<class U >
void FrameLib_Object< T >::addOutputDependencies ( std::vector< U *> &  dependencies)
inline

◆ addOutputDependencies() [2/4]

template<class T>
template<class U >
void FrameLib_Object< T >::addOutputDependencies ( std::vector< U *> &  dependencies,
unsigned long  outIdx 
)
inline

◆ addOutputDependencies() [3/4]

template<class T>
void FrameLib_Object< T >::addOutputDependencies ( Queue queue)
inlineprotected

◆ addOutputDependencies() [4/4]

template<class T>
void FrameLib_Object< T >::addOutputDependencies ( Queue queue,
unsigned long  outIdx 
)
inlineprotected

◆ addUniqueItem()

template<class T>
template<class U >
static bool FrameLib_Object< T >::addUniqueItem ( std::vector< U > &  list,
item 
)
inlinestaticprotected

◆ alloc()

template<class T>
template<class U >
U* FrameLib_Object< T >::alloc ( unsigned long  N)
inlineprotected

◆ audioInfo()

template<class T>
virtual std::string FrameLib_Object< T >::audioInfo ( unsigned long  idx,
bool  verbose = false 
)
inlinevirtual

Reimplemented in FrameLib_Expand< T >.

◆ autoOrderingConnections()

template<class T>
virtual void FrameLib_Object< T >::autoOrderingConnections ( )
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ blockUpdate()

template<class T>
virtual void FrameLib_Object< T >::blockUpdate ( const double *const *  ins,
double **  outs,
unsigned long  blockSize 
)
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ callConnectionUpdate()

template<class T>
void FrameLib_Object< T >::callConnectionUpdate ( )
inline

◆ clearAllocator()

template<class T>
void FrameLib_Object< T >::clearAllocator ( )
inlineprotected

◆ clearAutoOrderingConnections()

template<class T>
virtual void FrameLib_Object< T >::clearAutoOrderingConnections ( )
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ clearConnections()

template<class T>
void FrameLib_Object< T >::clearConnections ( )
inline

◆ clearOrderingConnections()

template<class T>
void FrameLib_Object< T >::clearOrderingConnections ( )
inline

◆ dealloc()

template<class T>
template<class U >
void FrameLib_Object< T >::dealloc ( U *&  ptr)
inlineprotected

◆ deleteConnection()

template<class T>
void FrameLib_Object< T >::deleteConnection ( unsigned long  inIdx)
inline

◆ deleteOrderingConnection()

template<class T>
void FrameLib_Object< T >::deleteOrderingConnection ( Connection  connection)
inline

◆ deleteUniqueItem()

template<class T>
template<class U >
static bool FrameLib_Object< T >::deleteUniqueItem ( std::vector< U > &  list,
item 
)
inlinestaticprotected

◆ enableOrderingConnections()

template<class T>
void FrameLib_Object< T >::enableOrderingConnections ( )
inlineprotected

◆ formatInfo() [1/5]

template<class T>
static const char* FrameLib_Object< T >::formatInfo ( const char *  verboseStr,
const char *  briefStr,
bool  verbose 
)
inlinestaticprotected

◆ formatInfo() [2/5]

template<class T>
static std::string FrameLib_Object< T >::formatInfo ( const char *  str,
unsigned long  idx 
)
inlinestaticprotected

◆ formatInfo() [3/5]

template<class T>
static std::string FrameLib_Object< T >::formatInfo ( const char *  verboseStr,
const char *  briefStr,
unsigned long  idx,
bool  verbose 
)
inlinestaticprotected

◆ formatInfo() [4/5]

template<class T>
static std::string FrameLib_Object< T >::formatInfo ( const char *  str,
const char *  replaceStr 
)
inlinestaticprotected

◆ formatInfo() [5/5]

template<class T>
static std::string FrameLib_Object< T >::formatInfo ( const char *  verboseStr,
const char *  briefStr,
const char *  replaceStr,
bool  verbose 
)
inlinestaticprotected

◆ getConnection()

template<class T>
Connection FrameLib_Object< T >::getConnection ( unsigned long  inIdx) const
inline

◆ getConnectionInternal()

template<class T>
Connection FrameLib_Object< T >::getConnectionInternal ( unsigned long  inIdx) const
inlineprotected

◆ getContext()

template<class T>
FrameLib_Context FrameLib_Object< T >::getContext ( ) const
inline

◆ getEmptyFixedInput()

template<class T>
const double* FrameLib_Object< T >::getEmptyFixedInput ( unsigned long  idx,
unsigned long *  size 
)
inlineprotected

◆ getFixedInput()

template<class T>
virtual const double* FrameLib_Object< T >::getFixedInput ( unsigned long  idx,
unsigned long *  size 
)
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ getNumAudioChans()

template<class T>
unsigned long FrameLib_Object< T >::getNumAudioChans ( ) const
inline

◆ getNumAudioIns()

template<class T>
unsigned long FrameLib_Object< T >::getNumAudioIns ( ) const
inline

◆ getNumAudioOuts()

template<class T>
unsigned long FrameLib_Object< T >::getNumAudioOuts ( ) const
inline

◆ getNumIns()

template<class T>
unsigned long FrameLib_Object< T >::getNumIns ( ) const
inline

◆ getNumOrderingConnections()

template<class T>
unsigned long FrameLib_Object< T >::getNumOrderingConnections ( ) const
inline

◆ getNumOuts()

template<class T>
unsigned long FrameLib_Object< T >::getNumOuts ( ) const
inline

◆ getOrderingConnection()

template<class T>
Connection FrameLib_Object< T >::getOrderingConnection ( unsigned long  idx) const
inline

◆ getOrderingConnectionInternal()

template<class T>
Connection FrameLib_Object< T >::getOrderingConnectionInternal ( unsigned long  idx) const
inlineprotected

◆ getParameters()

template<class T>
virtual const FrameLib_Parameters* FrameLib_Object< T >::getParameters ( ) const
inlinevirtual

Reimplemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ getProxy()

template<class T>
FrameLib_Proxy* FrameLib_Object< T >::getProxy ( ) const
inline

◆ getType()

template<class T>
ObjectType FrameLib_Object< T >::getType ( ) const
inline

◆ handlesAudio()

template<class T>
static bool FrameLib_Object< T >::handlesAudio ( )
inlinestatic

◆ inputInfo()

template<class T>
virtual std::string FrameLib_Object< T >::inputInfo ( unsigned long  idx,
bool  verbose = false 
)
inlinevirtual

Reimplemented in FrameLib_Expand< T >.

◆ inputType()

template<class T>
virtual FrameType FrameLib_Object< T >::inputType ( unsigned long  idx) const
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ isConnected()

template<class T>
bool FrameLib_Object< T >::isConnected ( unsigned long  inIdx) const
inline

◆ numberedString()

template<class T>
static std::string FrameLib_Object< T >::numberedString ( const char *  str,
unsigned long  idx 
)
inlinestaticprotected

◆ objectInfo()

template<class T>
virtual std::string FrameLib_Object< T >::objectInfo ( bool  verbose = false)
inlinevirtual

Reimplemented in FrameLib_Expand< T >.

◆ outputInfo()

template<class T>
virtual std::string FrameLib_Object< T >::outputInfo ( unsigned long  idx,
bool  verbose = false 
)
inlinevirtual

Reimplemented in FrameLib_Expand< T >.

◆ outputType()

template<class T>
virtual FrameType FrameLib_Object< T >::outputType ( unsigned long  idx) const
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ parameterInputInfo()

template<class T>
static std::string FrameLib_Object< T >::parameterInputInfo ( bool  verbose)
inlinestaticprotected

◆ registerStorage()

template<class T>
FrameLib_LocalAllocator::Storage* FrameLib_Object< T >::registerStorage ( const char *  name)
inlineprotected

◆ releaseStorage()

template<class T>
void FrameLib_Object< T >::releaseStorage ( FrameLib_LocalAllocator::Storage *&  storage)
inlineprotected

◆ reset()

template<class T>
virtual void FrameLib_Object< T >::reset ( double  samplingRate,
unsigned long  maxBlockSize 
)
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ setFixedInput()

template<class T>
virtual void FrameLib_Object< T >::setFixedInput ( unsigned long  idx,
double *  input,
unsigned long  size 
)
pure virtual

Implemented in FrameLib_Expand< T >, and FrameLib_DSP.

◆ setInputAlias()

template<class T>
ConnectionResult FrameLib_Object< T >::setInputAlias ( Connection  alias,
unsigned long  inIdx 
)
inline

◆ setIO()

template<class T>
void FrameLib_Object< T >::setIO ( unsigned long  nIns,
unsigned long  nOuts,
unsigned long  nAudioChans = 0 
)
inlineprotected

◆ setOrderingAlias()

template<class T>
ConnectionResult FrameLib_Object< T >::setOrderingAlias ( T *  alias)
inline

◆ setOutputAlias()

template<class T>
ConnectionResult FrameLib_Object< T >::setOutputAlias ( Connection  alias,
unsigned long  outIdx 
)
inline

◆ supportsOrderingConnections()

template<class T>
bool FrameLib_Object< T >::supportsOrderingConnections ( ) const
inline

The documentation for this class was generated from the following file: